package com.yiren.dbaa.module.practice_set.carmodel.model;

import android.app.Activity;

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.yiren.backstage.currency.entity.CarModelEntity;
import com.yiren.backstage.db.dao.controller.GradeDbController;
import com.yiren.backstage.db.dao.controller.UserDbController;
import com.yiren.dbaa.constant.AddressConstant;
import com.yiren.dbaa.currency.api.CommonCallBack;
import com.yiren.dbaa.module.practice_set.carmodel.contract.CarModelManageContract;
import com.yiren.dbaa.net.OkHttpUtils;
import com.yiren.dbaa.net.bean.TestBaseBean;
import com.yiren.dbaa.net.interf.StringCallback;

/**
 * @author lwb
 * @date : 2022/12/6 14:43
 * @description: 车模管理
 */
public class CarModelManageModel implements CarModelManageContract.Model {

    private Activity activity;
    private Gson gson;

    public CarModelManageModel(Activity activity) {
        this.activity = activity;
        gson = new Gson();
    }

    @Override
    public void updateUserRange(CarModelEntity carModel, int useRange, CommonCallBack callBack) {
        OkHttpUtils.getInstance().getStringByAsync(activity, AddressConstant.updateUserRange_carmodel("?useRange="+useRange+"&carModelId="+carModel.getId()+
                "&carModelVer="+carModel.getCarModelVer()), new StringCallback() {
            @Override
            public void getString(String result) {
                TestBaseBean<String> testBaseBean = gson.fromJson(result,new TypeToken<TestBaseBean<String>>() {}.getType());
                if (testBaseBean.isSuccess()){
                    callBack.success(testBaseBean.getData());
                }else {
                    callBack.fail("设置失败!");
                }
            }

            @Override
            public void getFail() {
                callBack.fail("数据请求失败!");
            }
        });



    }

    @Override
    public void updateUserRangeLoacl(CarModelEntity carModel, int range) {
        carModel.setUseRange(range);
        UserDbController.getInstance(false).update(carModel);

    }
}
